<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

<script>
  // setTimeout(() => {
  //   console.log('Hello World!');
  //   console.log('Hello World!');
  //   setTimeout(() =>{
  //     console.log('Hello Vuejs');
  //     console.log('Hello Vuejs');
  //     setTimeout(() => {
  //       console.log('Hello Java');
  //       console.log('Hello Java');
  //     },1000)
  //   },1000);
  // },1000)

  // new Promise((resolve, reject)=>{
  //   setTimeout(() => {
  //     console.log('Hello World!');
  //     console.log('Hello World!');
  //
  //     setTimeout(() =>{
  //       console.log('Hello Vuejs');
  //       console.log('Hello Vuejs');
  //
  //       setTimeout(() => {
  //         console.log('Hello Java');
  //         console.log('Hello Java');
  //
  //       },1000)
  //     },1000);
  //   },1000)
  // })

  // new Promise((resolve, reject) => {
  //   setTimeout(() => {
  //     resolve();
  //   }, 1000)
  // }).then(() => {
  //   console.log('Hello World!');
  //   console.log('Hello World!');
  //
  //   return new Promise((resolve, reject) => {
  //     setTimeout(() => {
  //       resolve();
  //     }, 1000);
  //   })
  // }).then(() => {
  //   console.log('Hello Vuejs');
  //   console.log('Hello Vuejs');
  //
  //   return new Promise((resolve, reject) => {
  //     setTimeout(() => {
  //       resolve();
  //     }, 1000)
  //   })
  // }).then(() => {
  //   console.log('Hello Java');
  //   console.log('Hello Java');
  //
  //   return new Promise((resolve, reject) => {
  //     setTimeout(() => {
  //       resolve();
  //     },1000)
  //   })
  // }).then(() => {
  //   console.log('End Java');
  //   console.log('End Java');
  // })

  // 相较于上面那个版本，下面是对我Promise异步编程的使用
  // new Promise((resolve, reject) => {
  //   setTimeout(() => {
  //     console.log('Hello World!');
  //     console.log('Hello World!');
  //     resolve();
  //   }, 1000)
  // }).then(() => {
  //
  //   return new Promise((resolve, reject) => {
  //     setTimeout(() => {
  //       console.log('Hello Vuejs');
  //       console.log('Hello Vuejs');
  //       resolve();
  //     }, 1000);
  //   })
  // }).then(() => {
  //
  //   return new Promise((resolve, reject) => {
  //     setTimeout(() => {
  //       console.log('Hello Java');
  //       console.log('Hello Java');
  //       resolve();
  //     }, 1000)
  //   })
  // }).then(() => {
  //
  //   return new Promise((resolve, reject) => {
  //     setTimeout(() => {
  //       console.log('End Java');
  //       console.log('End Java');
  //       resolve();
  //     },1000)
  //   })
  // })


  new Promise((resolve, reject) => {
    setTimeout(()=>{
      //成功的时候调用resolve
      resolve('Hello World!');
      //失败的时候调用reject
      reject('Error Message!');
    },1000)
  }).then((data) => {
    console.log(data);
  }).catch((err) => {
    console.log(err);
  })

</script>
</body>
</html>